#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 20

// 内存管理
void memory(void)
{
    char buf[50] = {"abcdefghijklmnopqrstuvwxyz"};
    char *p = malloc(sizeof(char) * MAX); // 申请内存

    for (int i = 0; i < buf[i]; i++)
    {
        if (i > MAX)
        {
            // 扩容
            p = realloc(p, sizeof(char) * (i + 1)); // 修改p所占内存总量
        }
        *(p + i) = buf[i];
    }
    memset(p, 'a', 1); // 修改前多少个字节为a
    // memcpy(p, buf, 5);         // 复制前五字
    // 比较前五字
    int demo = memcmp(buf, p, 5);
    printf("demo=%d\n", demo);
    if (memcmp(buf, p, 5) != 0)
    {
        printf("不相等\n");
    }
    else
    {
        printf("相等\n");
    }

    printf("buf=%s  p = %s----- %lu\n", buf, p, strlen(p));
    free(p);
}

void main()
{
    memory();
}